/**
 * ui 层向数据层传递调用的界面， 如果调用返回错误将触发"error"事件
 */

define(function(require, exports, modules){
	var api = require("api");
	var EventProxy = require("eventproxy");

	return $.extend(new EventProxy(), {
		call : function(apiName, params){
			var dtd = $.Deferred();

			var _this = this;
			api.call(apiName, params, function(res, error){
				if (error) {
					_this.emit("error", error);
					dtd.reject(error);
				} else {
					dtd.resolve(res);
				}
			});

			return dtd.promise();
		},
	});
});